/**
描述
  实现删除字符串中出现次数最少的字符，若出现次数最少的字符有多个，则把出现次数最少的字符都删除。
  输出删除这些单词后的字符串，字符串中其它字符保持原来的顺序。
  数据范围：输入的字符串长度满足 1 \le n \le 20 \1≤n≤20  ，保证输入的字符串中仅出现小写字母


  输入描述：
  字符串只包含小写英文字母, 不考虑非法输入，输入的字符串长度小于等于20个字节。


  输出描述：
  删除字符串中出现次数最少的字符后的字符串。


  示例1
  输入：
      aabcddd

  输出：
      aaddd
*/
// const readline = require('readline')
// const rl = readline.createInterface({
//   input:process.stdin,
//   output:process.stdout
// })

function transform(input) {
  // 字符串 转数组
  if (input.length <= 1) return
  const inputArr = input.split('')
  const backUpObj = {}
  let tempItem = null
  inputArr.forEach((item) => {
    tempItem = backUpObj[item]
    if (tempItem) {
      backUpObj[item] += 1
    } else {
      backUpObj[item] = 1
    }
  })
  // 结果是一个对象，转对象数组
  let resArr = Object.entries(backUpObj)
  // 按出现次数排序，找出最小
  resArr.sort((a, b)=> a[1] - b[1])
  // 找出需要截取调的字符
 
  let minCoutn = resArr[0][1]
  let minStr = resArr[0][0]
  for (let ri = 1; ri < resArr.length; ri++) {
    if (minCoutn == resArr[ri][1]) {
      minStr += '|' + resArr[ri][0]
    } else {
      break
    }
  }
  // 找到需要截取的字符串
  const reg = new RegExp(minStr, 'g')
  console.log(input.replace(reg, ''))
}

// 本地测试
let input = 'igwclcccc'
transform(input)

// 提交测试
// rl.on('line', (line) => {
//   if (line) {
//     // 处理接收
//     transform(line)
//   }
// })